package com.cv.platform.controller.platform.video.vo.detail;

import com.cv.platform.controller.platform.label.vo.record.CvVideoLabelRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 视频平台 - 视频详情 Response VO
 *
 * @author Charles_XDXD
 */
@Data
@Schema(description = "视频平台 - 视频详情 Response VO")
public class CvVideoDetailRespVO {

    /**
     * 视频编号
     */
    @Schema(description = "视频编号")
    private Long id;

    /**
     * 视频作者编号
     */
    @Schema(description = "视频作者编号")
    private Long userId;

    /**
     * 视频作者昵称
     */
    @Schema(description = "视频作者昵称")
    private String nickname;

    /**
     * 视频作者头像
     */
    @Schema(description = "视频作者头像")
    private Long avatar;

    /**
     * 视频作者头像 URL
     */
    @Schema(description = "视频作者头像 URL")
    private String avatarUrl;

    /**
     * 视频作者签名
     */
    @Schema(description = "视频作者签名")
    private String signature;

    /**
     * 视频标题
     */
    @Schema(description = "视频标题")
    private String title;

    /**
     * 视频播放量
     */
    @Schema(description = "视频播放量")
    private Integer viewCount;

    /**
     * 视频评论数量
     */
    @Schema(description = "视频评论数量")
    private Integer commentCount;

    /**
     * 视频封面
     */
    @Schema(description = "视频封面")
    private Long thumbnail;

    /**
     * 视频封面 URL
     */
    @Schema(description = "视频封面 URL")
    private String thumbnailUrl;

    /**
     * 视频 720p 链接
     */
    @Schema(description = "视频 720p 链接")
    private String resource720p;

    /**
     * 视频 1080p 链接
     */
    @Schema(description = "视频 1080p 链接")
    private String resource1080p;

    /**
     * 视频简介
     */
    @Schema(description = "视频简介")
    private String description;

    /**
     * 视频标签
     */
    @Schema(description = "视频标签")
    private List<CvVideoLabelRespVO> labelList;

    /**
     * 视频发布时间
     */
    @Schema(description = "视频发布时间")
    private LocalDateTime publishTime;

    /**
     * 是否可见
     */
    @Schema(description = "是否可见")
    private Integer isVisible;

    /**
     * 类型
     */
    @Schema(description = "类型")
    private String type;

    /**
     * 视频状态
     */
    @Schema(description = "视频状态")
    private String status;

}
